package com.shi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shi.entity.po.Menu;
import com.shi.entity.vo.MenuVO;
import com.shi.entity.vo.SimpleMenuVO;

import java.util.List;

/**
 * (Menu)表服务接口
 *
 * @author makejava
 * @since 2024-05-14 15:23:11
 */
public interface MenuService extends IService<Menu> {


    /**
     * 查询出全部动态路由
     *
     * @return
     */
    List<MenuVO> queryAllRoutes();

    /**
     * 查询所有菜单的菜单树
     *
     * @return
     */
    List<MenuVO> queryAllMenuTree();

    /**
     * 通过角色id，查询菜单id
     *
     * @return
     */
    List<Integer> queryFullCheckMenuIdByRoleId(Integer roleId);

    /**
     * 查询指定用户的路由树
     *
     * @param accountId
     * @return
     */
    List<MenuVO> queryRoutesByAccountId(Integer accountId);

    /**
     * 查询所有菜单代码列表
     *
     * @return
     */
    List<String> queryAllMenuCode();

    /**
     * 通过用户id查询菜单代码列表
     *
     * @param accountId
     * @return
     */
    List<String> queryMenuCodeByAccountId(Integer accountId);

    /**
     * 通过菜单类型查询
     *
     * @return
     */
    List<SimpleMenuVO> queryMenuByMenuType(String menuType);

    /**
     * 通过菜单id，删除菜单
     * @param id
     */
    void removeById(Integer id);

    void removeBatchByIds(List<Integer> ids);
}
